Ich habe mal eine Frage an die Profis hier... wie mache ich einen High Score? Also einer, der auch bleibt... das müsste ich ja in den Code bzw. Diskette zurückschreiben... Grüße Peter
Highscore
Ich würde bei Disks/ATRs eine Datei anlegen, in denen der Highscore (und ggf. zusätzliche Informationen) abgelegt wird. Diese habe ich dann bei Spielstart geladen und bei einer Änderung neu gespeichert. Das habe ich bei Turbo-Basic so gemacht; sollte bei Assembler analog gehen. 😉
Von (Turbo-)BASIC aus gibt es auch die Befehle NOTE und POINT, mit denen man direkt auf Bereiche der Disk zugreifen kann. Das habe ich aber bis Dato nicht verwendet; ich habe eine "normale" Datei angelegt.
Bei Modulen dürfte es etwas komplizieter sein. Soweit ich weiss kann man dort immer nur komplette Speicherblöcke löschen, d.h. um einen Score zu überschreiben. müßte man einen leeren Speicherblock haben, den man dann löschen und die neue Score speichern kann.
Sleeπ
Sleeπ schrieb: Bei Modulen dürfte es etwas komplizieter sein. Soweit ich weiss kann man dort immer nur komplette Speicherblöcke löschen, d.h. um einen Score zu überschreiben. müßte man einen leeren Speicherblock haben, den man dann löschen und die neue Score speichern kann.
Da kenne ich nur Flob, wo sowas gemacht wird. Ich habe das originale Spiel auf Cartridge, das speichert die erreichten Ziele. Wenn ich aber das Spiel über The!Cart starte (auch wenn ich mit Shift-Enter starte) werden die Spielstände nicht gespeichert...
Gibt es noch mehr Beispiele?
Witzig wäre auch ein Abspeichern über FujiNet auf einem entsprechendem Server. Da hätte man gleicht eine weltweiter Highscore-Liste 😉
ABBUC-Mitglied aus den 90ern/frühen 2000ern Ex-WAF und Regionalgruppe Thüringen
Hallo Peter!
Im "Das ATARI Profibuch", welches Du vom ABBUC herunterladen kannst, werden die CIO/SIO-Befehle beschrieben, wie man eine Datei auf einer Diskette öffnen kann und lesen. Sicherlich auch schreiben. Leider sind keine Programmbeispiele bei. Ich selbst habe das bis jetzt noch nicht ausprobiert.
Ein weltweiter Highscore wäre sicherlich nett, aber wer garantiert, dass dann dort nicht einer "nachgeholfen" hat? Habe gestern PubG gespielt und von 3 Spielen waren bei einem die Gegner zum Schluss wieder überaus "allwissend". 🙄
Grüße Janko
Meine Projekte findest Du hier...
Hallo Ihr Beiden, das Profibuch habe ich und auch tatsächlich mal reingeschaut bei CIO/SIO ... aber wie du sagst, da muss man sich erst einmal reinfuchsen für Assembler! Wenn ich das noch vor dem 31.7. schaffe, dann gut, eher aber was hier mal fürs Forum und ein nächstes Projekt! Mit Sicherheit haben wir hier aber Profis, die das schon längst programmiert haben 😉
Für (evtl. nur fast) alle Macroassembler gibt es fertige makropacks, die den Zugriff auf CIO fast so einfach machen, wie in BASIC.
So sieht das z.B. in MADS aus:
open #$10,#8,#dateiname
read #$10,#$B,#txtbuf,#txtbufend-txtbuf ; heißt zwar read, schreibt aber wegen Open mit #8 und dem Befehl $B ;)
close #$10
; insert libraries
.link '..\lib\io\io_lib.xex'
Ich hab das schon ewig in meinen Sources drin und bin mir deshalb nicht mehr ganz sicher. Aber ich meine, dass die Libs direkt mit MADS mitkommen und nur einmalig assembliert werden müssen, damit du das XEX erhältst. Im Quellcode der Lib steht auch, wie sie benutzt wird.
. Hallo Janko
Kveldulfur schrieb: Ein weltweiter Highscore wäre sicherlich nett, aber wer garantiert, dass dann dort nicht einer "nachgeholfen" hat?
Man könnte die Highscore irgendwie verschlüsseln.
Tschüß
Mathy
Schreibe nicht der Absicht zu, was man mit Dummheit oder Ignoranz erklären kann.
Übrigens für weltweite High-Scores:
https://atariage.com/forums/topic/326735-hi-score-cafe-with-support-for-fujinet